home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / clang / jcool01.zip / TEST_RNG.C < prev    next >
C/C++ Source or Header  |  1992-08-23  |  2KB  |  82 lines

  1. //
  2. // Copyright (C) 1991 Texas Instruments Incorporated.
  3. //
  4. // Permission is granted to any individual or institution to use, copy, modify,
  5. // and distribute this software, provided that this complete copyright and
  6. // permission notice is maintained, intact, in all copies and supporting
  7. // documentation.
  8. //
  9. // Texas Instruments Incorporated provides this software "as is" without
  10. // express or implied warranty.
  11. //
  12.  
  13. #include <cool/String.h>
  14. #include <cool/Range.h>
  15. #include <cool/Range.C>
  16. #include <test.h>
  17.  
  18. COOL_DefineRange(int,2,8,IntRange);
  19. COOL_DefineRange(double,2.5,8.8,DoubleRange);
  20. COOL_DefineRange(char*,"D","K",StrRange);
  21.  
  22.  
  23. void test_int () {
  24.   IntRange r1;
  25.   TEST ("CoolRange<int,2,8> r1", 1, 1);
  26.   TEST ("r1.low()==2", r1.low(), 2);
  27.   TEST ("r1.high()==8", r1.high(), 8);
  28.   TEST ("r1.set(4)", (r1.set(4), int(r1)), 4);
  29.   TEST ("r1()", int(r1), 4);
  30.   int i;
  31.   TEST ("int i = 2+r1", (i=2+r1,i), 6);
  32.   IntRange r2(r1);
  33.   TEST ("CoolRange<int,2,8> r2(r1)", int(r2), 4);
  34. }
  35.  
  36.  
  37. void test_double () {
  38.   DoubleRange r1;
  39.   TEST ("CoolRange<double,2.5,8.8> r1", 1, 1);
  40.   TEST ("r1.low()==2.5", r1.low(), 2.5);
  41.   TEST ("r1.high()==8.8", r1.high(), 8.8);
  42.   TEST ("r1.set(4.3)", (r1.set(4.3), double(r1)), 4.3);
  43.   TEST ("r1()", double(r1), 4.3);
  44.   double d;
  45.   TEST ("double d = 2.8+r1", (d=2.8+r1,d), 7.1);
  46.   DoubleRange r2(r1);
  47.   TEST ("CoolRange<double,2.5,8.8> r2(r1)", double(r2), 4.3);
  48. }
  49.  
  50.  
  51. void test_charP () {
  52.   StrRange r1;
  53.   TEST ("CoolRange<char*,\"D\",\"K\"> r1", 1, 1);
  54.   TEST ("r1.low()==\"D\"", strcmp (r1.low(),"D"), 0);
  55.   TEST ("r1.high()==\"K\"", strcmp (r1.high(),"K"), 0);
  56.   TEST ("r1.set(\"EFG\")", (r1.set("EFG"), strcmp ((char*)r1, "EFG")), 0);
  57.   TEST ("r1()", strcmp ((char*)r1, "EFG"), 0);
  58.   CoolString s1 (r1);
  59.   TEST ("CoolString s1(r1)", strcmp (s1,"EFG"), 0);
  60.   StrRange r2(r1);
  61.   TEST ("CoolRange<char*,\"D\",\"K\"> r2(r1)", strcmp ((char*)r2, "EFG"), 0);
  62. }
  63.  
  64. void test_leak () {
  65.   for (;;) {
  66.     test_int();
  67.     test_double();
  68.     test_charP();
  69.   }
  70. }
  71. int main () {
  72.   START("CoolRange");
  73.   test_int();
  74.   test_double();
  75.   test_charP();
  76. #if LEAK
  77.   test_leak();
  78. #endif
  79.   SUMMARY();
  80.   return 0;
  81. }
  82.